#ifndef CHOOSEFRIENDWIDGET_H
#define CHOOSEFRIENDWIDGET_H

#include <QDialog>
#include <QWidget>
#include <QHBoxLayout>
#include <QCheckBox>
#include <QLabel>
#include <QPushButton>

#include "model/datacenter.h"

using namespace model;

class ChooseFriendWidget;
/**********************************************************************************************
 * 供选择的一条好友列表
 **********************************************************************************************/
class ChooseFriendItem : public QWidget
{
    Q_OBJECT
public:
    ChooseFriendItem(ChooseFriendWidget* owner,const QString& userId,const QIcon& avatar,const QString& name,bool checked);
    void paintEvent(QPaintEvent* event)override;
    void enterEvent(QEnterEvent* event)override;
    void leaveEvent(QEvent* event) override;

    QString getUserId()
    {
        return userId;
    }

    QCheckBox* getCheckBox()
    {
        return checkBox;
    }

private:
    QCheckBox* checkBox;
    QPushButton* avatarBtn;
    QLabel* nameLabel;
    ChooseFriendWidget* owner;	// 记录了哪个 QWidget 持有了这个 Item. 此处的 QWidget 应该是一个 ChooseFriendWidget
    bool isHover;
    QString userId;
};

/**********************************************************************************************
 * 选择好友窗口
 **********************************************************************************************/
class ChooseFriendWidget : public QDialog
{
    Q_OBJECT
public:
    ChooseFriendWidget(QWidget* parent, QString userId);
    void initLeft(QHBoxLayout* hlayout);
    void initRight(QHBoxLayout* hlayout);
    void initData();

    void clickOkBtn();
    //获取选中的用户ID列表
    QList<QString> generateMemberList();

    void addFriend(const QString& userId,const QIcon& avatar,const QString& name,bool checked);
    void addSelectedFriend(const QString& userId,const QIcon& avatar,const QString& name);
    void deleteSelectedFriend(const QString& userid);
private:

    QWidget* leftContainer;     //全部好友列表
    QWidget* rightContainer;    //已选择的好友列表
    QString userId;
};

#endif // CHOOSEFRIENDWIDGET_H
